如何将数字2.00作为一个完整的字符串输出
How to output the number 2.00 as a complete string?
在此之前,我想说声抱歉。但这不是重复的。其他帖子上的任何答案都有同样的问题。JS中没有float或int(只有数字)。当您使isInt()
函数时,2.00总是将true
检测为整数。我想要2.00检测为浮动。所以,我必须先把它串起来。
function isInt(i) {
if ( i.toFixed ) {
if ( i % 1 === 0 ) {
return true; // the problem is 2.00 always detected true as integer.
// i want 2.00 detected as float
} else {
return false;
}
} else {
return false;
}
}
然后我想我会把2.00字符串化,然后用split('.')进行拆分。但toString不能做到
var i = 2.00;
alert(i.toString());
// Why this always result 2 . i want the character behind point
那么,如何做到这一点呢?我想要2.00的结果"2.00",而不仅仅是"2"
感谢您回答
您可以使用Number.toFixed(n);
var i = 2;
alert( i.toFixed(2) ); // "2.00"
var i = 1.2345;
alert( i.toFixed(2) ); // "1.23"
还要注意的是,2 === 2.00
但是2 !== "2.00"
。
修订答案:
在javascript中,绝对无法区分2
、2.0
和2.000
。因此,如果不提供一些额外的小数点,您将永远不会,能够从var a = 2.00
中检测到2在分配后是integer
以外的任何东西(根据您的方法)。
一个很好的例子,尽管有[误导性的]内置方法:
typeof parseInt('2.00', 10) == typeof parseFloat('2.00')
'number' == 'number'
/* true */
原始答案:
JavaScript没有基于硬的标量类型,只是一个简单的Number
。出于这个原因,并且因为您实际上只有1个有效数字,JavaScript将您的2.00
取为一个"整数"[使用得很巧妙](因此不存在小数点)。至JavaScript:2 = 2.0 = 2.00 = 2.00000
)。
举个例子,如果我给你12.000000000000
这个数字,让你记住它,并在一周后给别人,你会花时间记住有多少个零,还是专注于我给你的数字12
?(twelve
比twelve with as many decimal places
花更少的精力记忆)
至于int
与float
/double
/real
,您实际上只是从您的角度描述了数字的类型,而不是JavaScript的。把JavaScript中的一个数字称为int
看作是给它一个标签,而不是定义。概述:
Value: To JavaScript: To Us:
------ -------------- ------
1 Number integer
1.00 Number decimal
1.23 Number decimal
无论我们将其归类为什么,JavaScript仍然只将其视为Number
。
如果你需要保留小数点,Number.toFixed(n)
将是你的最佳选择。
例如:
// only 1 sig-fig
var a = 2.00;
console.log(''+a); // 2
console.log(a.toFixed(2)); // 2.00
// 3 sig-figs
var b = 2.01
console.log(''+b); // 2.01
console.log(b.toFixed(2)); // 2.01
顺便说一句,在var前面加上''+
和调用.toString()
是一样的,只是简写而已。如果我使用a.toString()
或b.toString()
,也会得到相同的结果
要字符串化(Chrome至少可以这样做),请使用以下方法:
i.toPrecision(3)
这将显示2位小数。
此外,NULL的解决方案在不需要计算精确精度的情况下也做得很好。即.toFixed(decimals)
是您最好的朋友
你不能完全做你想做的事。
2.00在JavaScript中被转换为数字2,没有小数点。如果你想使用.toFixed(2),你可以将它添加回,如上所示。
我建议将"2.00"保留为字符串,并在必要时将其解析为数字以进行算术运算。这样,您就可以区分数字2是输入为"2"、"2.00"还是"2.000000"。如果您想保留原始小数位数,请输出字符串,而不是数字。
- 一个ajax循环有两个输出错误innerHTML
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- Javascript未在其中一个变量上输出0
- 它在另一个函数中嵌套后不会输出文本
- 如何只输出一个SQL结果
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 从引导程序图标十六进制值输出一个符号
- 我有一个mysql的输入文本字段.那么,如何通过ajax从数据库中输出json表呢
- Jquery将最后一个输出作为值
- 将7个图像组合为一个,一个在另一个之上,并输出为单个图像
- rxjs:重置为流,只得到一个输出
- 为什么 async.series 只产生一个输出
- 使用两个文本区域(一个输入和一个输出)和JavaScript创建一个字母排序器
- 在一个输出中针对多个链接定位来自链接的文本值
- 我想使用setInterval()每1秒更新一个输出列表,但它会得到无限循环输出
- angularjs ng在两个级别上重复,但只有一个输出
- 有人能解释一下下面javascript代码的最后一个输出是如何产生的吗
- 多个输入到一个输出
- 需要添加一个输出的图像,一个隐藏的id,和checkout按钮到这个php/ajax脚本和我卡住
- 用于下一个输出的明文