我在SWI-Prolog文檔中花費了大量時間,並且無處可去。我的願望是能夠格式化輸出的數字,以便我控制顯示的總#小數位數,並且還將給定字符寬度中的數字對齊。例如:在SWI-Prolog中編寫格式文本
2.500 (trailing zeroes displayed)
34.432 (rounded from a much longer decimal value)
213.110
所有3個都在7個字符寬的空間右對齊,並顯示3個小數位(即使它們爲零)。我可以單獨完成一些這些事情,但不是一次完成。
writef('%7R', [34.342]).
writef('%7R', [34.300]).
^^^這非常接近我想要的,但不幸的是它顯示任何尾隨的零(它總是會忽略它們)。另外,我必須在將四捨五入的值傳遞給writef()之前手動進行四捨五入。
format('~3f', 34.34219089).
format('~3f', 1234.3).
這人做四捨五入,並允許尾隨零,但是我找不到任何方法來強制使用「格式」功能右對齊,我無法找到一個方法來writef的功能結合起來(對齊)與格式(舍入和零顯示)。
任何想法?
非常感謝!
謝謝!對不起,答覆緩慢,但你的答案似乎解決了我的問題。我並不完全理解你用「test(indent)」或sheet_inventory的東西所做的所有事情,但你的格式化例子比SWI-Prolog頁面上的格式更好。我可以實現我現在想要的: 格式('〜t〜3f〜10 |〜n〜t〜3f〜10 |',[34.34346,112.1]) – The111