本文目录一览:
- 1、菜鸟学php的问题?
- 2、php中sprintf的%f和%F的区别
- 3、php中整形转换为浮点型,并精确的小数点后两位
- 4、php中的浮点数分单双精度吗?用gettype()得到的double,用var_dump()是float
- 5、求 php 网页将 varchar 字符转换为浮点数值的代码
菜鸟学php的问题?
在任何计算机语言里面都是这样的,浮点型转化输出$d的结果是3.45E+50,而不是345000……后面48个零。
因为计算机内部的数都是二进制形式的,浮点型要使用有限的二进制位数(比如32位)表示巨大的数值,例如你这里的总共51位的数,那就必须采取的方法就是科学计数法:用一定的二进制位数表示底数、剩余的二进制位表示指数,所有的数都表示为:底数×10^指数,例如你的3.45E50,表示3.45乘以10的50次方。
浮点数的输出一般都是这样的固定格式,即使你采取特殊办法把48个0显示出来,也不见得就是0,完全可能是其它数值,因为浮点数的精度是有限的,小数点后面多少位之后都是省略了的。
php中sprintf的%f和%F的区别
PHP的sprintf具体语法sprintf(format,arg1,arg2,arg++)其中的参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束
%% - 返回百分比符号
%b - 二进制数
%c - 依照 ASCII 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%F - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
php中整形转换为浮点型,并精确的小数点后两位
PHP 中sprintf函数可以将整数格式化为浮点格式。比如格式化参数:%nf;其中,n 表示小数点后的位数。比如:
?php
$num=9.8;
$res=sprintf("%.2f", $num);
//输出:9.80
?
php中的浮点数分单双精度吗?用gettype()得到的double,用var_dump()是float
PHP中,float指“泛称的浮点数”,而不像“java或c中特指单精度浮点single-precisioned float”
double是指双精度浮点,全称double-precisioned float
按理浮点类型都因该返回'float',
getType函数由于要保持历史兼容,以前旧版就返回double,所以现在仍然返回double
PHP的基本类型中也只有64bit双精度浮点一种浮点数,即double。PHP没有使用单精度32bit浮点。
求 php 网页将 varchar 字符转换为浮点数值的代码
?php
$c='123.5687tfyt'; //字符串
echo $c; //输出字符串
echo 'br /'; //换行
$f=(float)$c; //转为浮点数++++++++++++++ 关键就这一行
$f++; //为验证是否浮点数,给它加1
echo $f; //输出浮点数
?
以上代码输出结果为:
123.5687tfyt
124.5687