相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

Swift 3:十进制到Int

我尝试使用以下代码将Decimal转换为Int:

Int(pow(Decimal(size), 2) - 1) 
Run Code Online (Sandbox Code Playgroud)

但我得到:

.swift:254:43: Cannot invoke initializer for type 'Int' with an argument list of type '(Decimal)' 
Run Code Online (Sandbox Code Playgroud)

在这里我知道pow正在返回a Decimal但似乎Int没有构造函数和成员函数可以转换DecimalInt.
如何在Swift 3中将Decimal转换为Int?

nsdecimalnumber ios swift swift3

25
推荐指数
4
解决办法
2万
查看次数

如何在Swift中将小数截断为x位置

在我的swift程序中,我有一个非常长的十进制数字(比如说17.9384693864596069567),我想将小数截断为几个小数位(所以我希望输出为17.9384).我希望数字四舍五入到17.9385.我怎样才能做到这一点?

感谢帮助!

注意:这不是重复的,因为在使用其中一些函数之前,它们使用的是旧版本的swift.此外,他们使用浮点数和整数,而我说的是双打.他们的问题/答案要复杂得多.

double decimal calculator ios swift

10
推荐指数
5
解决办法
1万
查看次数

如何在Swift中获取数字的整数部分和小数部分

这是一个超级基本的问题,但是,我似乎无法在Swift中找到答案.

题:

如何获取Swift 2和Swift 3中数字的整数部分和小数部分(分别位于小数点的左侧和右侧)?例如,对于数字1234.56789 -

如何获得整数部分1234 .56789?

我如何获得小数部分1234. 56789

math optimization swift

3
推荐指数
4
解决办法
8593
查看次数

字符串格式化比将 Double 转换为 Int 更昂贵吗?

我必须在用 Swift 编写的程序中选择两者之一,但我想我使用哪种编程语言并不重要。

我知道字符串格式化非常昂贵,并且怀疑它比将 Double 转换为 Int 更昂贵,但我什至不确定,最重要的是,到目前为止,我不明白为什么会出现这种情况。

另外,我在这里想做的是截断一个数字并将其打印到控制台,不带小数部分(这意味着我不希望它看起来像这样,0.0而是像这样0)。最有效的方法是什么?

有人可以启发我吗?

这是代码(第一行进行字符串格式化,第二行进行转换):

print(String(format: "%.0f", sender.value))

Int(sender.value)
Run Code Online (Sandbox Code Playgroud)

string casting string-formatting swift

0
推荐指数
1
解决办法
197
查看次数