• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

2番目の小数桁に丸め

  • Thread starter Thread starter Angelo2449
  • Start date Start date

Angelo2449

Guest
皆さんこんにちは。
表を補うために2番目の小数に丸め番号をとります。
私は、丸いので、彼らの合計で刺身を作ることができません, cjiは素敵なルーチンを持っています?
お問い合わせ
 
問題が2つの数字が(ほぼ)等しいかどうかをチェックすることです。最初の小数だけの場合、それらを比較することができます(例:espr1 espr2 近似)
espr1 = 1.123456 espr2=1.123457
(equal espr2) は nil を返します
(例 espr1 espr2 0.000001) は t を返します。
0.005 を要し、 n を追加しない(コンマの後に 2 桁のみ) で比較する必要がある場合。 2つの数字が等しい場合、0.005の合計がキャリーオーバーを持っていなかったため、数字が5〜2桁のデシム未満であったことを意味します。 (例:0.023 + 0.005 = 0.028(第2は3になっていません)。
お問い合わせ
 
おかげで、x11start、あなたのアドバイスの後に、私は実際の番号を5に丸め2つの小数でフォーマットされた文字列に変換し、このコードを書きました。
また、不足しているゼロを追加, それは素晴らしい動作します!
多分それはスタイルの最高のではありませんが、, 彼らは言うように, 勝ったチームは変更しません.
しかし、それは、コードをスティリスティック改善さえするために興味深いだろう。
お問い合わせ
Code:
 (defun フォーマット (/numberx 全体の fraz 全体の frazs 第 2 番目の第 3 秒番号)

(setq の numerox Areax)

(setq全体(固定数x)))
(setq の fraz)

(setqinteras) は、
(Sectqのfrazs)
(setq frazs (substr frazs 3 3)))

(Sectq ファースト (サブストラ frazs 1 1)))
(Sectq 秒 (サブスト フラッツ 2 1)))
(セクション3 (1))

(Sectq III)

(if)
(setq秒(1+(atoi秒))))))
(setq秒)
;;;

(setq秒)
(setq秒(1秒))

(setq numeros (strcatinteros ") 最初の秒)

(setq の numeros)

;;;
 
ラウンド(コンマの後に最初の数字で2番目の数字で)。しかし、少し変更) 使用:

;;;
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; ラウンド
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;;;
;入力:
; ラウンドする番号 (例えば 4.35)
;;;
;出力:
; 丸みのあるナロ番号(例えば4.5)
;;;
;;;
; ラウンドは、次の基準に従って行われます。
;;;
;0.00から0.24への→ ツイート
0.25〜0.74→ 0.5パーセント
;0.75から1.0への> 1.0 の
;;;
;;;
(デファンラウンド(数字/全ローストコンマ)
(setq 全体(固定番号) ; 全数
(setq comma (- 全数));コンマの後の部分
(コンド)
((< comma 0.25)(setq arrot 0.0)); < 0.25 丸から 0.0 (欠陥ごと)
((&(>=コンマ0.25)(<コンマ0.75))))))。 0.5(半)までロール
(t (setq arrot 1.0) ; それ以外の場合は 1.0 まで(超過)
)
(setq narro (+ 全体の arrot)); 番号を返す (フル + ラウンドされた部分)
)
;;;
 
これらの2つの関数を使って、小数を管理する

; デルタの基盤が付いている数を円形にする機能
(nデルタ)
(* デルタ (固定 (+) 0.49))
)

; decimals を切る機能
(defun の定数(num dec/多く))
(setq 多数(expt 10.0 dec))
(/(固定(*多数))))))
)

(ラウンド 1.45689 0.01) リターン 1.46
(ラウンド1.45423 0.01) リターン 1.45
(fixnum 1.45689) は 1.4 を返します
(fixnum 1.45689) は 1.45 を返します。
(固定数 1.45689 3) 1.456
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top