我正在打印一个我不知道其值的数字。在大多数情况下,该数字为整数或结尾为0.5。在某些情况下,该数字以.25或.75结尾,而极少数情况下该数字达到千分之一。我该如何具体检测到最后一种情况?现在,我的代码检测到一个整数(0个小数位),精确地为0.5(1个小数位),然后在所有其他情况下恢复为2个小数点,但是当我需要这样做时,我需要将其改为3。
class func getFormattedNumber(number: Float) -> NSString {
var formattedNumber = NSString()
// Use the absolute value so it works even if number is negative
if (abs(number % 2) == 0) || (abs(number % 2) == 1) { // Whole number, even or odd
formattedNumber = NSString(format: "%.0f", number)
}
else if (abs(number % 2) == 0.5) || (abs(number % 2) == 1.5) {
formattedNumber = NSString(format: "%.1f", number)
}
else {
formattedNumber = NSString(format: "%.2f", number)
}
return formattedNumber
}
A Float
使用二进制(IEEE 754)表示形式,不能精确表示所有十进制小数。例如,
let x : Float = 123.456
存储在x
字节中42f6e979
,大约为 123.45600128173828
。那x
有3或14个小数位数吗?
您可以使用NSNumberFormatter
,如果您指定的 最大数量 的应提交十进制数字:
let fmt = NSNumberFormatter()
fmt.locale = NSLocale(localeIdentifier: "en_US_POSIX")
fmt.maximumFractionDigits = 3
fmt.minimumFractionDigits = 0
println(fmt.stringFromNumber(123)!) // 123
println(fmt.stringFromNumber(123.4)!) // 123.4
println(fmt.stringFromNumber(123.45)!) // 123.45
println(fmt.stringFromNumber(123.456)!) // 123.456
println(fmt.stringFromNumber(123.4567)!) // 123.457
Swift 3/4更新:
let fmt = NumberFormatter()
fmt.locale = Locale(identifier: "en_US_POSIX")
fmt.maximumFractionDigits = 3
fmt.minimumFractionDigits = 0
print(fmt.string(for: 123.456)!) // 123.456
问题内容: 我想知道如何在不舍入原始数字的情况下输出带两位小数的数字。 例如: 我已经尝试过: 问题答案: 您要使用命令。 https://dev.mysql.com/doc/refman/8.0/zh-TW/mathematical- functions.html#function_truncate
number(string $format): self string $format $config = [ 'path' => './tests' ]; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHan
数字的格式在解决实际问题时使用非常普遍,这时可以使用 DedmalFormat 类对结果进行格式化处理。例如,将小数位统一成 2 位,不足 2 位的以 0 补齐。 DecimalFormat 是 NumberFormat 的一个子类,用于格式化十进制数字。DecimalFormat 类包含一个模式和一组符号,常用符号的说明如表 1 所示。 表 1 DecimalFormat 支持的特殊字符 符号
numberComma用于分割数字,默认为3位分割,一般用于格式化金额。 numberPad用于按照位数补0 numberRandom用于生成两个整数范围内的随机整数 import { numberComma, numberPad, numberRandom } from 'vux' numberComma(21342132) // 21,342,132 numberComma(21342132,
问题内容: 我希望实数是例如12.92,而不是12.9241。有可能这样做吗? 问题答案: 在PHP中,尝试 :
我有功能: 我需要一个函数,在“number”参数-将接收一个小数,舍入到小数位数(缩放参数),并返回字符串中的结果。有人知道怎么做吗?