在双精度上使用$ wpdb-> insert时,我应该使用哪种格式?

I am going to be storing 3 pieces of info into my DB: the post_id, a trans_id, and a trans_amount (money). An example of a trans_id looks like 9q5fcs so I reason that I should use %s for string. How can I have the $wpdb object store trans_amount as a double?

The post_id is simply the post id that gets returned when using the same insert function. I am using it in a another block of code before this. However, when I set its format to be inserted as %d, it does not get inserted in the DB. The DB field is set to int(11).

Code:

global $wpdb;

        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'trans_amount' => $amount), '%s');
        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'post_id' => $_SESSION['fd_post_id']), '%d');
        $wpdb->insert( $wpdb->prefix . 'fd_transactions', array( 'trans_id' => $trans_id), '%s');
% - a literal percent character. No argument is required.
b - the argument is treated as an integer, and presented as a binary number.
c - the argument is treated as an integer, and presented as the character with that ASCII value.
d - the argument is treated as an integer, and presented as a (signed) decimal number.
e - the argument is treated as scientific notation (e.g. 1.2e+2). The precision specifier stands for the number of digits after the decimal point since PHP 5.2.1. In earlier versions, it was taken as number of significant digits (one less).
E - like %e but uses uppercase letter (e.g. 1.2E+2).
f - the argument is treated as a float, and presented as a floating-point number (locale aware).
F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3.
g - shorter of %e and %f.
G - shorter of %E and %f.
o - the argument is treated as an integer, and presented as an octal number.
s - the argument is treated as and presented as a string.
u - the argument is treated as an integer, and presented as an unsigned decimal number.
x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).



string  s
integer     d, u, c, o, x, X, b
double  g, G, e, E, f, F

what happen if you don't pass data types ?

it takes data type as a string 


For Double 
you can use g, G, e, E, f, F any of these according to your value