Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Write Table now available in Qlik Cloud Analytics: Read Blog
cancel
Showing results for 
Search instead for 
Did you mean: 
YOSHIDA_T
Contributor III
Contributor III

Floor関数の数値上限

お世話になっております。

Windows版のQlik senseを利用しているユーザーです。

 

以下にどちらも1を返すことを想定してしている数式があります。

(1):Floor(10/10,1)

(2):Floor(100000000000/100000000000,1)

(1)は正しく1を返しますが、(2)は0を返します。

対応として以下のように1つめのFloor関数の桁を下げ2重にすることで対応することは可能です。

Floor(Floor(100000000000/10000000000,1)/10,1)

 

このような桁数の限界はヘルプには見当たりませんでした、このような桁数の限界等の仕様はどこから確認することが可能でしょうか?

 

4 Replies
hka
Employee
Employee

仕様に関わる話になりますのでテクニカルサポートに問い合わせてください

marcus_sommer

I could imagine that the following will be helpful:

Rounding Errors - Qlik Community - 1468808

tts
Employee
Employee

Qlikエンジンでは数値は64bit浮動小数点(IEEE 754)で処理されますので、必ず誤差が発生します。

[Decimal Values In Qlik Sense And QlikView]
https://community.qlik.com/t5/Official-Support-Articles/Decimal-Values-In-Qlik-Sense-And-QlikView-Ju...


ですので、例えば
Floor(10/10,1)
Floor(100000000000/100000000000,1)

Floor(Round(10/10,1),1)
Floor(Round(100000000000/100000000000,1),1)
のように誤差を考慮して調整することで、どちらも1にすることは可能でしょう。

tts
Employee
Employee

参考情報としては、Qlikが実装しているFloor関数の処理は、例えばExcelのそれとは内部的に違う実装になっているなどの仕様(R&Dの回答)になっているため、誤差を考慮した数式が必要になります。