当前位置: 首页 > 知识库问答 >
问题:

小数位数计数(Swift)

方奕
2023-03-14

这是我目前得到的

var someDouble:Double
var someString:String
var lenghtInt:Int



someDouble = 42.123                                 // create a float

someDouble = someDouble % 1                         // get rid of everything infront of the comma

someString = NSString(format: "%f", someDouble)     // format float into string

lenghtInt = someString.utf16Count - 2               // count lenght, substract 2 (for "0" & ".")

它告诉我小数点后有6位,因为它把“000”放在末尾。

我怎么解决这个?

尼克拉斯

共有1个答案

支淮晨
2023-03-14

尝试:

let s1 = String(format: "%.19g", 1.2345) // 1.2345

不确定swift printf是否支持“%g”。

编辑:19是基于一个双倍的精度,显示所有(非零)数字,但不在末尾得到...0001。“%g”是浮点数的“自然”表示形式的printf格式说明符。

 类似资料:
  • 我正在尝试在旁边使用值方法。 不幸的是,编译器说不兼容的类型。 如果我将s更改为s,它仍然不喜欢它。

  • 我正在学习浮点格式(IEEE)。在单精度浮点格式中,提到尾数有24位,因此它具有6 1/2十进制数字的精度(根据书中“理解机器”),以及7.22十进制数字的精度。 我不明白精度的小数位数是怎么算出来的。有人能告诉我吗?

  • 我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短数、浮数、双数)。Float和double是浮点数。通常,它们由一个符号+/-、一个尾数和一个指数组成。每个部分占用一定数量的比特。一个浮动最多可以显示小数点后7位,最多可以双倍显示16位。其公式是: 23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数点后) 52·0.3≈16(双人小数点后) 我知

  • 好的,我如何将小数点四舍五入到第二位而不是第一位?我必须创建一个菜单,让“顾客”点餐,我们必须包括小计、税费和小费。我的代码运行得很好,除非总数大约是3.8美元,而它应该是3.80美元。我怎样才能只用数学来解决这个问题呢。圆形()?我菜单上的钱代码是 非常感谢你!

  • 问题内容: 我需要计算的小数位数。例如: 退货 退货 退货 退货 我需要做的这 一个与十进制数字多。 我该如何快速且可扩展? 在 转换到字符串的 方法是缓慢的: 这种 按十个循环进行循环的 方法甚至更慢: 有没有更快的方法? 问题答案: 这看起来像在工作。我还没有进行详尽的测试,也没有进行任何时间的测试,但似乎运行时间合理。 在我的Celeron M笔记本电脑上花了大约3秒钟,因此它在某些不错的工

  • 问题内容: 有没有一种简单的方法来确定PHP中的(n)整数/双精度值中的小数位数?(即,不使用) 问题答案: