| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // package quark_float -- кварк вещественное.
- package quark_float
- import (
- "fmt"
- "strconv"
- mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
- )
- // QFloat -- кварк вещественное.
- type QFloat[M quark_val.CMod] struct {
- *quark_base.QBase[M, float64]
- }
- // NewQFloat -- создание фиксированного кварка вещественное.
- func NewQFloat(val float64) *QFloat[quark_val.Fix] {
- optMass := quark_base.QBaseOptMass[quark_val.Fix, float64](8)
- optVal := quark_base.QBaseOptVal(val)
- sf := &QFloat[quark_val.Fix]{
- QBase: quark_base.NewQBase(optMass, optVal),
- }
- return sf
- }
- // NewQFloatMut -- создание мутабельного кварка вещественное.
- func NewQFloatMut(val float64) *QFloat[quark_val.Mut] {
- optMass := quark_base.QBaseOptMass[quark_val.Mut, float64](8)
- optVal := quark_base.QBaseOptValMut(val)
- sf := &QFloat[quark_val.Mut]{
- QBase: quark_base.NewQBaseMut(optMass, optVal),
- }
- return sf
- }
- // Get -- возвращает хранимое значение.
- func (sf *QFloat[M]) Get() float64 {
- return sf.Val().Get()
- }
- // Set -- устанавливает хранимое значение.
- func Set(sf *QFloat[quark_val.Mut], val float64) {
- quark_val.Set(sf.Val(), val)
- }
- // FromStr -- устанавливает из строки.
- //
- //go:fix inline
- func FromStr(sf *QFloat[quark_val.Mut], str string) {
- fVal, err := strconv.ParseFloat(str, 64)
- mKh.Hassert(err == nil, "QFloat.FromStr(): str=%q, err=\n\t%v", str, err)
- quark_val.Set(sf.Val(), fVal)
- }
- // ToStr -- конвертирует в строку.
- //
- //go:fix inline
- func (sf *QFloat[M]) ToStr() string {
- return fmt.Sprint(sf.Get())
- }
|